import logging
import allure
import os
from utils.ocr_utils import get_res_sn_captcha


@allure.step("1.解析请求数据")
def analyze_case(case):
    # 3个问题：1.url不存在；2.部分字符串类型数据需转化为字典；3.预期结果这个参数不能在请求中传输，会报错 (123均已解决)
    # 核心步骤1：解析请求数据
    method = case["method"]
    url = os.environ["URL"] + case["path"]
    params = eval(case["params"]) if isinstance(case["params"], str) else None
    data = eval(case["data"]) if isinstance(case["data"], str) else None
    json = eval(case["json"]) if isinstance(case["json"], str) else None
    files = eval(case["files"]) if isinstance(case["files"], str) else None
    headers = eval(case["headers"]) if isinstance(case["headers"], str) else None

    # 下面我们将需要的请求参数进行拼接，不想要的参数(预期结果)就不传，这样就能避免问题3。
    request_data = {
        "method": method,
        "url": url,
        "params": params,
        "data": data,
        "json": json,
        "files": files,
        "headers": headers,
    }
    logging.info(f"1.解析请求数据，请求数据为: {request_data}")
    # allure.attach(f"{request_data}", name="解析请求数据")
    return request_data
